package net.alan.modules.service;

import net.alan.common.constants.ENoticeType;
import net.alan.modules.bean.Notice;
import net.alan.modules.bean.PageModel;
import net.alan.modules.bean.Result;
import org.springframework.data.domain.Page;

/**
 * Author 李岩飞
 * Email eliyanfei@126.com
 * 2017/11/21
 */
public interface INoticeService extends IBaseService {
    /**
     * 通过用户Id获取通知信息
     */
    Page<Notice> findByUserId(Integer userId, PageModel pageModel);

    /**
     * 通知所有用户
     */
    Result noticeAll(String content);

    /**
     * 确认消息已读
     */
    Result ok(Integer id);

    /**
     * 确认通过项目
     */
    Result okProject(Integer id);

    /**
     * 添加通知
     */
    void addNotice(String content, ENoticeType noticeType, Integer refId, Integer userId);

    /**
     * 统计未读通知
     */
    int countUnRead(Integer userId);
}